Алгоритм обратного распространения ошибки
Начальные веса
Первая строка - веса к элементу 1, вторая к 2. Последние элементы это смещение
| > |
W:=Matrix([[1,0.5,1],[-1,2,1]]):
|
Веса второго слоя (в конце смещение)
| > |
W2:=Vector(row,[1.5,-1,1]):
|
Входной сигнал( последний элемент относится к смещению, всегда=1)
20 циклов для обучения сети
| > |
U3:=convert(<map(x->1/(1+exp(-x)),U2),1>,Vector);
|
Сигмоид(функция активации)
| > |
u5:=map(x->1/(1+exp(-x)),W3);
|
Ошибка выхода(цель=1)
| > |
delta[0]:=(1-u5)*u5*(1-u5);
|
Ошибки промежуточного слоя
| > |
delta[4]:=delta[0]*W2[2]*U3[2]*(1-U3[2]);
|
| > |
delta[3]:=delta[0]*W2[1]*U3[1]*(1-U3[1]);
|
Коэффициент обучения
Исправляем веса (обучение)
| > |
for i to 3 do W2[i]:=W2[i]+ro*delta[0]*U3[i];od;
|
| > |
W[i,j]:=W[i,j]+ro*delta[i+2]*Uin[j];
|
|